home *** CD-ROM | disk | FTP | other *** search
- /*
- * macros.h
- *
- * Copyright (C) 1995 Martin von L÷wis
- * Copyright (C) 1996 RΘgis Duchesne
- */
- #ifndef EOPNOTSUPP
- #define EOPNOTSUPP 95
- #endif
-
- #define NTFS_FD(vol) ((vol)->u.fd)
-
- /* Linux */
- #ifdef NTFS_IN_LINUX_KERNEL
- #define NTFS_SB(vol) ((struct super_block*)(vol)->sb)
- #define NTFS_SB2VOL(sb) (&(sb)->u.ntfs_sb)
- #define NTFS_INO2VOL(ino) (&((ino)->i_sb->u.ntfs_sb))
- #define NTFS_LINO2NINO(ino) (&((ino)->u.ntfs_i))
- #else
- #define NTFS_SB(vol) ((struct super_block*)(vol)->u.sb)
- #define NTFS_SB2VOL(sb) ((ntfs_volume*)(sb)->u.generic_sbp)
- #define NTFS_INO2VOL(ino) ((ntfs_volume*)((ino)->i_sb->u.generic_sbp))
- #define NTFS_LINO2NINO(ino) ((ntfs_inode*)((ino)->u.generic_ip))
- #endif
-
- /* BSD */
- #define NTFS_MNT(vol) ((struct mount*)(vol)->u.sb)
- #define NTFS_MNT2VOL(sb) ((ntfs_volume*)(sb)->mnt_data)
- #define NTFS_V2INO(ino) ((ntfs_inode*)((ino)->v_data))
-
- /* Classical min and max macros still missing in standard headers... */
- #ifndef min
- #define min(a,b) ((a) <= (b) ? (a) : (b))
- #define max(a,b) ((a) >= (b) ? (a) : (b))
- #endif
-
- #define IS_MAGIC(a,b) (*(int*)(a)==*(int*)(b))
- #define IS_MFT_RECORD(a) IS_MAGIC((a),"FILE")
- #define IS_NTFS_VOLUME(a) IS_MAGIC((a)+3,"NTFS")
- #define IS_INDEX_RECORD(a) IS_MAGIC((a),"INDX")
-
- /* 'NTFS' in little endian */
- #define NTFS_SUPER_MAGIC 0x5346544E
-
- #define NTFS_AFLAG_RO 1
- #define NTFS_AFLAG_HIDDEN 2
- #define NTFS_AFLAG_SYSTEM 4
- #define NTFS_AFLAG_ARCHIVE 20
- #define NTFS_AFLAG_COMPRESSED 0x800
- #define NTFS_AFLAG_DIR 0x10000000
-
- /*
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
-